function main_wireless_channel()
% 第二章：无线信道建模与特性分析 - 主函数
% 本脚本整合所有信道分析模块，提供完整的无线信道建模功能

clear; clc; close all;

fprintf('=== 第二章：无线信道建模与特性分析 ===\n');

% 创建结果文件夹（在当前章节目录下）
if ~exist('results', 'dir')
    mkdir('results');
end

%% 参数设置
fs = 1e6; % 采样频率 1MHz
t_max = 0.01; % 最大时间 10ms
carrier_freq = 2.4e9; % 载波频率 2.4GHz
mobile_speed = 3; % 移动速度 3m/s (步行)
distance_range = 1:100; % 距离范围 1-100米
num_samples = 10000; % 统计样本数量
k_factor_db = 5; % 莱斯因子 5dB

%% 1. 路径损耗模型分析
fprintf('\n1. 路径损耗模型分析...\n');
[path_loss_results, fig_path_loss] = path_loss_models(distance_range, carrier_freq);
set(fig_path_loss, 'ToolBar', 'none'); % 隐藏工具栏
saveas(fig_path_loss, 'results/path_loss_models.png');
close(fig_path_loss);

%% 2. 信道冲激响应分析
fprintf('\n2. 信道冲激响应分析...\n');
[channel_ir, channel_params, fig_impulse_response] = channel_impulse_response(fs, t_max, 6, 'urban');
set(fig_impulse_response, 'ToolBar', 'none'); % 隐藏工具栏
saveas(fig_impulse_response, 'results/channel_impulse_response.png');
close(fig_impulse_response);

%% 3. 时频相关性分析
fprintf('\n3. 时频相关性分析...\n');
delay_spread = 0.1e-3; % 时延扩展 0.1ms
[correlation_results, coherence_params, fig_correlation] = time_frequency_correlation(carrier_freq, fs, mobile_speed, delay_spread);
set(fig_correlation, 'ToolBar', 'none'); % 隐藏工具栏
saveas(fig_correlation, 'results/time_frequency_correlation.png');
close(fig_correlation);

%% 4. 统计信道模型分析
fprintf('\n4. 统计信道模型分析...\n');
[statistical_results, fig_statistics] = statistical_channel_models(num_samples, k_factor_db);
set(fig_statistics, 'ToolBar', 'none'); % 隐藏工具栏
saveas(fig_statistics, 'results/statistical_channel_models.png');
close(fig_statistics);

%% 总结分析
fprintf('\n=== 无线信道分析总结 ===\n');

% 路径损耗分析
fprintf('\n1. 路径损耗特性:\n');
fprintf('   自由空间路径损耗 (100m, 2.4GHz): %.1f dB\n', path_loss_results.fspl(end));
fprintf('   Hata模型路径损耗 (100m, 2.4GHz): %.1f dB\n', path_loss_results.hata(end));
fprintf('   路径损耗指数影响: 指数越大，损耗随距离增加越快\n');

% 信道冲激响应
fprintf('\n2. 信道冲激响应特性:\n');
fprintf('   城市环境最大时延: %.2f ms\n', channel_params.max_delay * 1000);
fprintf('   RMS时延扩展: %.2f μs\n', channel_params.rms_delay_spread * 1e6);
fprintf('   多径数量: %d\n', length(channel_params.delays));

% 时频相关性
fprintf('\n3. 时频相关性:\n');
fprintf('   最大多普勒频移 (3m/s): %.1f Hz\n', coherence_params.max_doppler);
fprintf('   相干时间 (50%%): %.2f ms\n', coherence_params.coherence_time_50 * 1000);
fprintf('   相干带宽 (90%%): %.2f kHz\n', coherence_params.coherence_bandwidth_90 / 1000);

% 统计特性
fprintf('\n4. 统计信道特性:\n');
fprintf('   瑞利衰落标准差: %.3f\n', statistical_results.rayleigh.std);
fprintf('   莱斯衰落标准差: %.3f\n', statistical_results.rician.std);
fprintf('   莱斯因子: %d dB\n', k_factor_db);

% 信道分类
fprintf('\n5. 信道分类:\n');
if coherence_params.coherence_time_50 * 1000 > 10 && coherence_params.coherence_bandwidth_90 / 1000 < 1
    fprintf('   信道类型: 频率选择性慢衰落信道\n');
elseif coherence_params.coherence_time_50 * 1000 < 1 && coherence_params.coherence_bandwidth_90 / 1000 < 1
    fprintf('   信道类型: 频率选择性快衰落信道\n');
elseif coherence_params.coherence_time_50 * 1000 > 10 && coherence_params.coherence_bandwidth_90 / 1000 > 10
    fprintf('   信道类型: 平坦慢衰落信道\n');
else
    fprintf('   信道类型: 平坦快衰落信道\n');
end

% 保存结果数据
save('results/wireless_channel_results.mat', ...
     'path_loss_results', 'channel_ir', 'channel_params', ...
     'correlation_results', 'coherence_params', 'statistical_results', ...
     'carrier_freq', 'mobile_speed', 'distance_range', 'num_samples', 'k_factor_db');

fprintf('\n=== 第二章分析完成！所有结果已保存到 Chapter02_WirelessChannel/results 文件夹 ===\n');

end